home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / ms_dos / lib / happysrc / hapai.h next >
Text File  |  1994-10-20  |  4KB  |  66 lines

  1. /*********************************************************************
  2.  *                                                                   *
  3.  *      HAPPy  assembler & interpriter common header                 *
  4.  *                                                                   *
  5.  *                Copyright (c) H.Asano 1992-1994.                   *
  6.  *                                                                   *
  7.  *********************************************************************/
  8.  
  9.  
  10. #define Maxstore   13000                /* 記憶装置の大きさ(ワード数) */
  11. #define Maxint     2147483647L          /* 最大整数値                 */
  12. #define Largeint   32768L               /* shortより大きい数         */
  13.  
  14. #define NilValue   Maxstore + 1        /*  ポインタのnilの値          */
  15.  
  16. #define inputadr  5                     /* input バッファアドレス     */
  17. #define outputadr 6                     /* outputバッファアドレス     */
  18.  
  19. #define MaxIDlng 32                     /* 名前の最大識別可能文字数   */
  20. #define MaxRFlen 32                     /* 実ファイル名の最大長       */
  21. #define Maxfileno 8                     /* 最大ファイル数(input,output以外)*/
  22. #define addset(Set,pos) ((Set) |= ( (long)1 << (pos) ))
  23.  
  24. typedef long integer ;                  /* integer は long型とする    */
  25. typedef enum bool  {false ,             /* 偽                         */
  26.                     true                /* 真                         */
  27. }  boolean ;                            /* pascalのboolean型と同じ    */
  28.  
  29. typedef struct  {             /*********  命令格納域 型定義           */
  30.   unsigned char  op  ;                  /* operation                  */
  31.   char           p   ;                  /* p operand                  */
  32.   short          q   ;                  /* q operand                  */
  33. } _code ;
  34.  
  35. typedef union {                         /******  記憶装置 型定義      */
  36.   integer        vi    ;                /* integer                    */
  37.   float          vr    ;                /* real                       */
  38.   short          vb    ;                /* boolean                    */
  39.   long           vs    ;                /* set (0..31)                */
  40.   short          vc    ;                /* char                       */
  41.   short          va    ;                /* address                    */
  42.   _code          vo    ;                /* object code                */
  43. }  _store ;
  44.  
  45. typedef enum fmode {
  46.            undefined  ,         /* 不定                               */
  47.            inspection ,         /* 検査モード                         */
  48.            generation           /* 生成モード                         */
  49. } fmode ;
  50.  
  51. typedef struct fileinfo {       /* ファイル情報テーブル               */
  52.   char filename[MaxIDlng+1] ;   /* 外部ファイル  論理ファイル名       */
  53.   boolean askflag    ;          /* 実ファイル名を問い合わせる時 真    */
  54.   short  fileadr     ;          /* P-code上の ファイル変数アドレス    */
  55.   short  filesize    ;          /* バッファ変数の大きさ               */
  56.   char   rfname[MaxRFlen+1] ;   /* 実ファイル名                       */
  57.   _store *filebuf    ;          /* バッファ変数アドレス               */
  58.   boolean textfile   ;          /* テキストファイルの時 真            */
  59.   boolean eolnflag   ;          /* テキストファイルのeolnの時 真      */
  60.   boolean writelnflag;          /* 最後が改行の時 真                  */
  61.   FILE *fp           ;          /* ファイルポインタ                   */
  62.   fmode mode         ;          /* 生成モード / 検査モード / 不定     */
  63. } fileinfo           ;
  64.  
  65. EXTERN fileinfo fi[Maxfileno+2] ;
  66.